[AID-BACKEND-011] Создать Метод ProcessParsedReceiptText() в purchase-ollama-worker
Реализация воркера ИИ-структурирования и генерации JSON
NoteКраткая карточка задачи
- Репозиторий / Компонент:
purchase-ollama-worker(Домен AID). - Контракт метода: Kafka Consumer Handler
ProcessParsedReceiptText(). - Статус: Готово к реализации
- Ссылка на Метод: Спецификация ИИ-фильтрации обсценного контента
- Инструкция по шагам:
- На Шаге 1: Настроить вычитку очищенных строк из топика
bpds.inventory.out.receipt.parsed. Извлечьraw_text_input,app_langи сквозныеx_request_id/case_id. - Реализовать динамическую подстановку системного промпта: при
app_lang == ruязыковая модель должна принудительно возвращать каноничные названия продуктов на русском языке, переводя любые сокращения ритейлеров (например, «молоко просткв 2.5%» () «Молоко Простоквашино 2.5%»). - На Шаге 2: Выполнить запрос к
Llama Containerчерез механизм Structured Outputs, передав в LLM жесткую схему валидации Pydantic. - На Шаге 3: Принять ответ от LLM, провести валидацию структуры массива расходов (обязательное наличие
product_id,canonical_name,quantity,price_per_unit, БЖУ). - На Шаге 4: Опубликовать готовый валидный массив продуктов в топик
bpds.mdm.out.product.templated, сохранив сквозныеx_request_idиcase_id.
- На Шаге 1: Настроить вычитку очищенных строк из топика